home *** CD-ROM | disk | FTP | other *** search
- /*
- * file: SequencerTest Movies.c
- *
- *
- */
-
-
- /*--------------------------
- Inclusions
- --------------------------*/
-
- #include <QuickDraw.h>
- #include <Windows.h>
- #include <Memory.h>
- #include <Packages.h>
- #include <Movies.h>
-
- #include "BigEasy2.h"
- #include "BigEasyTextish.h"
- #include "BigEasyGrafish.h"
- #include "BigEasyDialogs.h"
-
- #include "SequencerTest.h"
- #include "SequencerTest Realtime.h"
- #include "SequencerTest Movies.h"
-
- #include "Event Priority Queue.h"
-
-
- /*--------------------------
- Dead Flesh
- --------------------------*/
-
-
- void MakeAMIDIMovie(short n,short item, short ref)
- {
- Movie m;
- Track t;
- Media me;
- short refNum;
- OSErr thisError;
- MusicDescription **sdh;
- Handle header;
- TDoc *d;
- Str255 movieName;
- long size;
- StandardFileReply sfr;
- TimeScale ts;
-
- d = &gDoc[n-kFirstDocWindow];
-
- DoTheHeader(d);
-
- CopyPString(movieName,d->docSpec.name);
- ConcatenatePStrings(movieName,"\p.Movie");
-
- StandardPutFile("\pSave Music Movie:",movieName,&sfr);
- if(!sfr.sfGood)
- goto goHome;
-
- thisError = CreateMovieFile(&sfr.sfFile,'TVOD',0,
- createMovieFileDeleteCurFile,
- &refNum,
- &m);
- SetMoviePreferredVolume(m,256);
- SetMovieVolume(m,256);
- t = NewMovieTrack(m,0,0,256);
- TuneGetTimeScale(d->tp,&ts);
- me = NewTrackMedia(t,kMusicComponentType,ts,0,0);
- thisError = GetMoviesError();
-
- header = BuildMusicHeader(d);
- size = sizeof(MusicDescription) + GetHandleSize(header);
-
- sdh = (void *)NewHandleClear(size);
- (**sdh).descSize = size;
- (**sdh).dataFormat = 'musi';
- BlockMove(*header,&(**sdh).headerData,GetHandleSize(header));
-
- thisError = BeginMediaEdits(me);
-
- thisError = AddMediaSample(me,d->qtScore,0,GetHandleSize(d->qtScore),
- kScoreLength,(void *)sdh,
- 1,0,0);
-
- thisError = InsertMediaIntoTrack(t,0,0,kScoreLength,(1L<<16));
-
- thisError = EndMediaEdits(me);
-
- thisError = AddMovieResource(m,refNum,nil,nil);
- thisError = CloseMovieFile(refNum);
-
- goHome:;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void MakeAFunkyMusicMovie(short n,short item, short ref)
- {
- Movie m;
- Track t;
- Media me;
- short refNum;
- OSErr thisError;
- MusicDescription **sdh;
- Handle header;
- TDoc *d;
- Str255 movieName;
- long size;
- StandardFileReply sfr;
- TimeScale ts;
-
- d = &gDoc[n-kFirstDocWindow];
-
- DoTheHeader(d);
-
- CopyPString(movieName,d->docSpec.name);
- ConcatenatePStrings(movieName,"\p.Movie");
-
- StandardPutFile("\pSave Music Movie:",movieName,&sfr);
- if(!sfr.sfGood)
- goto goHome;
-
- thisError = CreateMovieFile(&sfr.sfFile,'TVOD',0,
- createMovieFileDeleteCurFile,
- &refNum,
- &m);
- SetMoviePreferredVolume(m,256);
- SetMovieVolume(m,256);
- t = NewMovieTrack(m,0,0,256);
- TuneGetTimeScale(d->tp,&ts);
- me = NewTrackMedia(t,kMusicComponentType,ts,0,0);
- thisError = GetMoviesError();
-
- header = BuildMusicHeader(d);
- size = sizeof(MusicDescription) + GetHandleSize(header);
-
- sdh = (void *)NewHandleClear(size);
- (**sdh).descSize = size;
- (**sdh).dataFormat = 'musi';
- BlockMove(*header,&(**sdh).headerData,GetHandleSize(header));
-
- thisError = BeginMediaEdits(me);
-
- thisError = AddMediaSample(me,d->qtScore,0,GetHandleSize(d->qtScore),
- kScoreLength,(void *)sdh,
- 1,0,0);
-
- thisError = InsertMediaIntoTrack(t,-1,0,kScoreLength,(2L<<16));
-
- thisError = EndMediaEdits(me);
-
- thisError = AddMovieResource(m,refNum,nil,nil);
- thisError = CloseMovieFile(refNum);
-
- goHome:;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #define kNoteRequestMessageSize sizeof(NoteRequest)/4 + 2
-
- Handle BuildMusicHeader(TDoc *d)
- {
- Handle header;
- unsigned long size;
- short i;
- NoteRequest *nr;
- unsigned long *w;
-
- size = kScoreParts*(8 + sizeof(NoteRequest)) + 4;
- /* 8 bytes for general music message,
- * + 4 for end marker
- */
-
- header = (void *)NewHandleClear(size);
- if(!header)
- goto goHome;
-
- w = (unsigned long *)*header;
-
- for(i = 0; i < kScoreParts; i++)
- {
- _StuffGeneralEvent(*w,*(w + kNoteRequestMessageSize - 1),
- i,kGeneralEventNoteRequest,kNoteRequestMessageSize);
- nr = (NoteRequest *)(w + 1);
-
- nr->polyphony = 3;
- nr->typicalPolyphony = 0x30000;
-
-
- nr->polyphony = 1;
- nr->typicalPolyphony = 0x10000;
-
- nr->tone = d->sr.score[i].tone;
-
- w += kNoteRequestMessageSize;
- }
-
- *w++ = 0x60000000; /* end marker */
-
- goHome:
- return header;
- }
-
-